perm filename DRA.F4[TMP,LCS] blob sn#136266 filedate 1974-12-15 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		DIMENSION II(1024),JJ(1024),KK(1024),LL(1024),KP(5),NN(4096)
C00017 ENDMK
CāŠ—;
	DIMENSION II(1024),JJ(1024),KK(1024),LL(1024),KP(5),NN(4096)
	1,A(384),B(384),IB(2048)
	COMMON KP,NP,NN,JF
	IMP(I)=IABS(NN(I)/100000000)
1	JE=0
	MN=0
	IP=-1
	MO=0
	NZ=10
	IM=0
	JF=0
	IS=-1
	NF=0
	LF=1
	CALL DPYCLR
	CALL TYPLOC(-350,-511)
	DO 407 I=1,4
407	KP(I)='     '
	CALL DPYSET(4,LL,1000)
	CALL DPYSET(3,KK,1000)
	CALL DPYSET(2,JJ,1000)
	CALL DPYSET(1,II,1000)
	MN=0
2	TYPE 5
5	FORMAT(' TYPE:<CR>;TO DRAW NEW PICTURE.'/
	1' OR TYPE IN NAME TO USE OLD PICTURE.'/)
	ACCEPT 3,NAM
3	FORMAT(A5)
	IF(NAM.EQ.'     ')GO TO 140
   	IF(.NOT.LOOKD(NAM))GO TO 2
515	CALL IFILE(1,NAM)
	READ(1)LE,(NN(K),K=MN+1,MN+LE)
	MN=MN+LE
	IP=-1
	IF(MO.NE.'P')GO TO 517
	MO=100000000
	DO 518 K=MN-LE+1,MN
	MP=1
	IF(NN(K))MP=-1
	NN(K)=IABS(NN(K))
518	NN(K)=MP*(NP*MO+(MOD(NN(K),MO)))
	GO TO 503
517	DO 388 K=1,MN
	NP=MOD(IMP(K),10)
	CALL SETPOG(NP)
	CALL INXY(NX,NY,K)
	MP=1
	IF(NN(K))MP=-1
388	CALL IPEN(NX,NY,MP,NZ)
   	DO 193 I=1,4
	KP(I)='VIS  '
193	CALL DPYOUT(I)
	CALL SETPOG(1)
140	NP=1
	CALL IPOG(NZ)

211	NS=0
120	LV=0
144	CALL SETCUR(NX,NY,LV)
	IF(NS)TYPE 6
6	FORMAT(' :'$)
	IF(JF.GT.0)TYPE 634
634	FORMAT(' O'$)
	ACCEPT 103,M,N
103	FORMAT(2A1)
	LX=NX
	LY=NY
	CALL RDCUR(NX,NY)
	IF(NC)GO TO 191
	IF(M.NE.' ')GO TO 11
308	IF(LV.NE.0)GO TO 192
301	CALL IPAK(NX,NY,MN,1,NZ)
	LV=1
	GO TO 144
192 	CALL IPAK(NX,NY,MN,-1,NZ)
341	N=NP
278	CALL DPYOUT(N)
	KP(N)='VIS  '
360	IF(IP)CALL IPOG(NZ)
260	IF(NS)GO TO 144
	GO TO 120

11	IF(M.EQ.':')GO TO 261
	IF(M.EQ.'.')GO TO 303
	IF(M.EQ.'W')GO TO 380
  	IF(M.EQ.'H')GO TO 306
	IF(M.EQ.'V')GO TO 307
	IF(M.EQ.'B')GO TO 105
  	IF(M.EQ.'C')GO TO 150
	IF(M.EQ.'+')GO TO 500
	IF(M.EQ.'-')GO TO 501
	IF(M.EQ.'*')GO TO 502
	IF(M.EQ.'J')GO TO 608
	IF(M.EQ.'O')GO TO 630
	IF(M.EQ.'A')GO TO 510
	IF(M.EQ.'E')GO TO 425
	IF(M.EQ.'G')GO TO 799
	IF(M.EQ.'(')GO TO 431
	IF(M.EQ.')')GO TO 432
  	IF(M.EQ.'I'.OR.M.EQ.'S')GO TO 230
	IF(M.EQ.'X')GO TO 104
	IF(M.EQ.'Z')GO TO 580
	IF(M.EQ.'F')GO TO 601
	IF(M.NE.'P')GO TO 260
	IP=-1
	IF(N.EQ.'I')GO TO 258
	IF(N.EQ.'D')GO TO 340
	IF(N.NE.' ')GO TO 231
259	NP=NP+1
	IF(NP.GT.4)NP=1
251	CALL SETPOG(NP)
	GO TO 503
630	IF(JF.GT.0)GO TO 701
	REREAD 710,M,JF
710	FORMAT(A1,I2)
	IF(JF.LT.1.OR.JF.GT.19.OR.JF.EQ.10)JF=1
	GO TO 261
701	JF=0
	GO TO 211
303	IF(LV.EQ.0)GO TO 301
	CALL IPAK(NX,NY,MN,-1,NZ)
333	KP(NP)='VIS  '
	IF(IP)CALL IPOG(NZ)
	CALL DPYOUT(NP)
	NX=LX
	NY=LY
	IF(.NOT.NC)GO TO 301
	NC=0
	GO TO 211
601	IT=0
702	IT=IT+1
	IF(IT.GT.19)GO TO 708
	IF(IT.EQ.10)IT=11
	I=0
	K=0
602	I=I+1
	IF(I.GT.MN)GO TO 660
606	IF(MOD(IMP(I),10).NE.NP)GO TO 602
	IF(IMP(I)/10.NE.IT)GO TO 602
	K=K+1
	CALL INXY(N,M,I)
	IF(IT.GT.10)CALL INXY(M,N,I)
	A(K)=N*NZ/10
	B(K)=M*NZ/10
	IB(K)=3
	IF(NN(I))IB(K)=2
	I=I+1
	IF(I.LE.MN)GO TO 606
660	IF(K.LT.3)GO TO 702
	IB(1)=K
	JI=IT
	IF(IT.GT.10)JI=IT-10
	IF(IS)JI=JI+5
	CALL FILLER(A,B,IB,JI,IS,IT,LD,LS)
	GO TO 702
708	IF(IS)GO TO 341
	GO TO 689
608	NV=-1
	IF(LV.EQ.0)NV=1
	CALL IPAK(JX,JY,MN,NV,NZ)
	NX=JX
	NY=JY
	GO TO 341
306	NY=LY
	GO TO 308
307	NX=LX
	GO TO 308
230	IF(N.EQ.' ')GO TO 258
231	IF(N.LT.'1'.OR.N.GT.'4')GO TO 255
	REREAD 408,M,N
408	FORMAT(A1,I1)
	IF(M.EQ.'S')GO TO 278
   	IF(M.NE.'I')GO TO 256
257	KP(N)='     '
	CALL HYDPOG(N)
	IF(M.EQ.'P')GO TO 259
	GO TO 360
255	IF(M.EQ.'P')GO TO 259
258	IF(M.EQ.'S')GO TO 341
	N=NP
	GO TO 257
256	NP=N
	GO TO 251
261	IF(NS)GO TO 211
	NS=-1
	IF(LV.EQ.1)GO TO 666
	JX=NX
	JY=NY
	GO TO 301
666	JX=LX
	JY=LY
	GO TO 192
580	IF(IP)GO TO 581
	IP=-1
	GO TO 360
581	IP=0
	N=5
	GO TO 257
500	IF(NZ.EQ.20)GO TO 503
	NZ=NZ+1
	GO TO 503
501	IF(NZ.EQ.5)GO TO 503
	NZ=NZ-1
	GO TO 503
502	IF(NZ.EQ.10)GO TO 503
	NZ=10
503	CALL CLRPOG(NP)
	CALL IDRA(MN,NZ)
335	NS=0
	GO TO 341
510	REREAD 516,MO,NAM
516	FORMAT(1XA1,A5)
	IF(MO.EQ.'G')GO TO 778
	IF(.NOT.LOOKD(NAM))GO TO 260
	GO TO 515
778	CALL GETFIL(NAM)
	CALL FASTIN(IB,2)
	MS=IB(2)
	CALL GETFIL(NAM)
	CALL FASTIN(IB,MS+2)
	CALL GETP(IB,NN(MN+1))
	DO 777 K=MN+1,MN+MS
	I=NP*100000000
	IF(NN(K))I=-I	
777	NN(K)=NN(K)+I	
	MN=MN+MS
	GO TO 503
340	CALL CLRPOG(NP)
	J=0
400	J=J+1
507	IF(J.GT.MN)GO TO 466
	MP=MOD(IMP(J),10)
	IF(MP.NE.NP)GO TO 400
	DO 401 I=J,MN-1
401	NN(I)=NN(I+1)
	MN=MN-1
	GO TO 507
466	IF(JE)GO TO 467
	IP=-1
	GO TO 431
105	LP=MOD(IMP(MN),10)
	IF(MN.LT.1.OR.LP.NE.NP)GO TO 335
	IF(NP.EQ.1)II(2)=II(2)-1
	IF(NP.EQ.2)JJ(2)=JJ(2)-1
	IF(NP.EQ.3)KK(2)=KK(2)-1
	IF(NP.EQ.4)LL(2)=LL(2)-1
        CALL ACCPOG(NP)
	MN=MN-1
	LV=0
	IF(NN(MN))LV=1
	GO TO 341
150	NC=-1
	IF(LV.NE.1)GO TO 301
191	R=0
	MN=MN-1
	RM=(NX-LX)**2+(NY-LY)**2
	RM=SQRT(RM)
	KX=LX+RM*SIND(R)
	KY=LY+RM*COSD(R)
	CALL IPAK(KX,KY,MN,1,NZ)
	DO 151 K=6,360,6
	R=K
	KX=LX+RM*SIND(R)
	KY=LY+RM*COSD(R)
151	CALL IPAK(KX,KY,MN,-1,NZ)
	GO TO 333
380	IF(LV.NE.1)GO TO 103
	REREAD 377,M,N
377	FORMAT(A1,I2)
	IF(N.LT.4)N=100
	KN=N/10
	IF(KN.LT.2)KN=2
	DO 381 I=0,N,KN
	CALL IPAK(LX-N/2+I,LY-N/2+I,MN,1,NZ)
381	CALL IPAK(NX-N/2+I,NY-N/2+I,MN,-1,NZ)
	GO TO 341
799	LX=NX*10/NZ
	LY=NY*10/NZ
	I=MN
	NY=1000
	DO 801 K=1,MN
	CALL INXY(JX,JY,K)
	NX=IABS(JX-LX)+IABS(JY-LY)
	IF(NY.LT.NX)GO TO 801
	I=K
	NY=NX
801	CONTINUE
	LF=0
	MP=NP
	IN=1
	GO TO 548
813	IN=-1
	I=MN+1
	GO TO 426
425	I=0
	MP=NP
	IF(N.EQ.'E')GO TO 813
	IN=1
426	I=I+IN
784	IF(I.GT.MN.OR.I.LT.1)GO TO 804
548	CALL INXY(NX,NY,I)
	CALL SETCUR(NX*NZ/10,NY*NZ/10,1)
794	IF(IN)TYPE 815
815	FORMAT(' -'/)
	TYPE 469
469	FORMAT(' EDIT?'$)
	ACCEPT 103,M,N
	IF(M.EQ.' ')GO TO 426
	IF(M.EQ.'-')GO TO 810
	IF(M.EQ.'+')GO TO 783
	IF(M.EQ.'D')GO TO 470
	IF(M.EQ.'I')GO TO 547
	IF(M.EQ.'O')GO TO 782
	IF(M.EQ.'C')GO TO 800
	IF(M.EQ.':')GO TO 790
	IF(M.EQ.')')GO TO 900
	CALL RDCUR(NX,NY)
	IF(M.EQ.'M')GO TO 780
	IF(M.NE.'B')GO TO 804
	I=I-IN
	GO TO 548
804	NP=MP
	GO TO 211
810	IN=-IN
	GO TO 426
900	IF(IN)GO TO 901
	IM=I
	NF=LF
	GO TO 794
901	IM=LF
	NF=I
	GO TO 794
800	IF(LF.EQ.0.OR.LF.GT.MN)LF=I
	NP=MP
	DO 806 K=LF,I,IN
	CALL INXY(NX,NY,K)
	JF=IMP(K)/10
	MS=1
	IF(NN(K))MS=-1
806	CALL IPAK(NX,NY,MN,MS,10)
814	JF=0
	LF=0
	GO TO 471
790	LF=I
	GO TO 794
780	JF=IMP(I)/10
	LF=I
	NX=NX*10/NZ
	NY=NY*10/NZ
	GO TO 786
783	REREAD 377,M,N
	I=I+IN*N
	GO TO 784
782	REREAD 377,M,JF
	IF(JF.OR.JF.EQ.10.OR.JF.GT.19)JF=0
	IF(LF.EQ.0.OR.LF.GT.MN)LF=I
796	CALL INXY(NX,NY,LF)
786	MS=1
	IF(NN(LF))MS=-1
	NP=MOD(IMP(LF),10)
	LF=LF-1
	CALL IPAK(NX,NY,LF,MS,10)
	LF=LF+IN
	IF(IN.AND.(LF-I))GO TO 814
	IF(.NOT.IN.AND.(I-LF))GO TO 814
	GO TO 796
547	NN(I)=-NN(I)
	GO TO 471
470	MN=MN-1
	DO 428 K=I,MN
428	NN(K)=NN(K+1)
471	CALL CLRPOG(NP)
	CALL IDRA(MN,NZ)
	CALL DPYOUT(NP)
	GO TO 784
431	NX=0
	NY=0
	NF=MN+1
	IM=0
	GO TO 211
432	IF(IM.EQ.0)IM=MN
	DO 433 I=NF,IM
	JF=IMP(I)/10
	CALL INXY(IX,IY,I)
	IX=NX+IX
	IY=NY+IY
	MP=1
	IF(NN(I))MP=-1
433	CALL IPAK(IX,IY,MN,MP,NZ)
	JF=0
	GO TO 341

104	CALL CLRCUR
	CALL IPOG(NZ)
	IP=-1
   	TYPE 111
111	FORMAT(' TYPE:<CR>;TO CONTINUE.'/' TYPE:''N''<CR>;TO START OVER.'/
	2' TYPE:''X'' TO SAVE VIS POGS IF FINISHED'/
	3' OR TYPE:''P'' TO PLOT ALL VIS POGS'/)
	ACCEPT 103,M,NV
	IF(M.EQ.'N')GO TO 1
	IF(M.EQ.'P')GO TO 557
	IF(M.NE.'X')GO TO 120
127	TYPE 121
121	FORMAT(' TYPE A FIVE LETTER NAME FOR THIS PICTURE.'/)
	ACCEPT 3,NAM
	IF(NAM.EQ.'     ')GO TO 127
557	MP=0
	DO 405 IK=1,4
	IF(KP(IK).NE.'VIS  ')GO TO 405
	MP=MP+1
405	CONTINUE
	IF(MP.EQ.0)GO TO 104
	IF(M.EQ.'P')GO TO 555
	NP=0
	JE=-1
467	NP=NP+1
	IF(NP.GT.4)GO TO 468
	IF(KP(NP).NE.'VIS  ')GO TO 340
	GO TO 467
468	CALL OFILE(1,NAM)
	WRITE(1)MN,(NN(K),K=1,MN)
	END FILE 1
	GO TO 1
555	TYPE 587
587	FORMAT(/' PLOTING CURRENT POG'/)
	CALL PLOTS(I)
	IF(NV.EQ.'L')GO TO 797
	IF(NV.EQ.'S')GO TO 850
	IF(NV.NE.'D'.AND.NV.NE.'B')GO TO 851
	LD=-1
850	LS=-1
851	IS=0
	GO TO 601
689	IF(NV.EQ.'S'.OR.NV.EQ.'D'.OR.NV.EQ.'Z')GO TO 711
797	DO 556 I=1,MN
	IF(MOD(IMP(I),10).NE.NP)GO TO 556
	CALL INXY(NX,NY,I)
	MO=3
	IF(NN(I))MO=2
	CALL PLOT(NX*NZ/10,NY*NZ/10,MO)
556	CONTINUE
711	CALL PLOT(0,0,3)
	TYPE 691
691	FORMAT(' FINISHED PLOTING!'/)
	IS=-1
	LS=0
	LD=0
	GO TO 211
	END

	SUBROUTINE IPOG(NZ)
	COMMON KP(5),NP,NN(4096),JF
	DIMENSION MM(24),JP(4)
	CALL DPYSET(5,MM,24)
	CALL DPYTXT(100,-430,'POG1 POG2 POG3 POG4 ZOOM ',5)
	KP(5)=' REG '
	IF(NZ.LT.10)KP(5)=' --- '
	IF(NZ.GT.10)KP(5)=' +++ '
	CALL DPYTXT(100,-450,KP,5)
	DO 4 J=1,4
	JP(J)='     '
4	IF(J.EQ.NP)JP(J)=' ↑↑  '
	CALL DPYTXT(100,-470,JP,4)
	CALL DPYOUT(5)
	CALL SETPOG(NP)
	RETURN
	END
	SUBROUTINE IPAK(NX,NY,MN,MP,NZ)
	COMMON KP(5),NP,NN(4096),JF
	MN=MN+1
	IX=(NX*10/NZ)+1024
	IY=(NY*10/NZ)+1024
	NN(MN)=MP*((JF*10+NP)*100000000+IX*10000+IY)
	CALL IPEN(NX,NY,MP,10)
	RETURN
	END
	SUBROUTINE IPEN(NX,NY,MP,NZ)
	IX=NX*NZ/10
	IF(IX.GT.950)IX=950
	IF(IX.LT.-950)IX=-950
	IY=NY*NZ/10
	IF(IY.GT.950)IY=950
	IF(IY.LT.-950)IY=-950
	IF(MP)GO TO 1
	CALL AIVECT(IX,IY)
	RETURN
1	CALL AVECT(IX,IY)
	RETURN
	END
	SUBROUTINE INXY(NX,NY,MN)
	COMMON KP(5),NP,NN(4096),JF
	J=IABS(NN(MN))
	NY=MOD(J,10000)-1024
	NX=(MOD(J,100000000)/10000)-1024
	RETURN
	END
	SUBROUTINE IDRA(MN,NZ)
	COMMON KP(5),NP,NN(4096),JF
	DO 1 I=1,MN
	KF=MOD(IABS(NN(I)/100000000),10)
	IF(KF.NE.NP)GO TO 1
	CALL INXY(IX,IY,I)
	CALL IPEN(IX,IY,NN(I),NZ)
1	CONTINUE
	RETURN
	END